<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>矩形編集 | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀ANSI版開発トップへ</a>
        <li><div class="list-title">
    <span class="no">4103</span>
    <a class="thread-title" href="4103.html#4103">矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4106</span>
    <a class="thread-title" href="4103.html#4106">Re:矩形編集</a></div>
    </li><li><div class="list-title">
    <span class="no">4107</span>
    <a class="thread-title" href="4103.html#4107">Re:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4108</span>
    <a class="thread-title" href="4103.html#4108">Re2:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4114</span>
    <a class="thread-title" href="4103.html#4114">Re3:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4116</span>
    <a class="thread-title" href="4103.html#4116">Re4:矩形編集</a></div>
    </li><li><div class="list-title">
    <span class="no">4117</span>
    <a class="thread-title" href="4103.html#4117">Re4:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4124</span>
    <a class="thread-title" href="4103.html#4124">Re5:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4126</span>
    <a class="thread-title" href="4103.html#4126">Re6:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4127</span>
    <a class="thread-title" href="4103.html#4127">Re7:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4138</span>
    <a class="thread-title" href="4103.html#4138">Re8:矩形編集</a></div>
    </li></ul></li></ul></li><li><div class="list-title">
    <span class="no">4128</span>
    <a class="thread-title" href="4103.html#4128">Re6:矩形編集</a></div>
    </li><li><div class="list-title">
    <span class="no">4129</span>
    <a class="thread-title" href="4103.html#4129">Re6:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4130</span>
    <a class="thread-title" href="4103.html#4130">Re7:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4131</span>
    <a class="thread-title" href="4103.html#4131">Re8:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4133</span>
    <a class="thread-title" href="4103.html#4133">Re9:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4134</span>
    <a class="thread-title" href="4103.html#4134">Re10:矩形編集</a></div>
    </li></ul></li></ul></li><li><div class="list-title">
    <span class="no">4132</span>
    <a class="thread-title" href="4103.html#4132">Re8:矩形編集</a></div>
    </li><li><div class="list-title">
    <span class="no">4135</span>
    <a class="thread-title" href="4103.html#4135">Re8:矩形編集</a></div>
    </li><li><div class="list-title">
    <span class="no">4136</span>
    <a class="thread-title" href="4103.html#4136">Re8:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4137</span>
    <a class="thread-title" href="4103.html#4137">Re9:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4139</span>
    <a class="thread-title" href="4103.html#4139">Re10:矩形編集</a></div>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li><li><div class="list-title">
    <span class="no">4122</span>
    <a class="thread-title" href="4103.html#4122">Re4:矩形編集</a></div>
    <ul><li><div class="list-title">
    <span class="no">4125</span>
    <a class="thread-title" href="4103.html#4125">Re5:矩形編集</a></div>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=4103>
    <span class="no">[4103]</span>
    <a class="thread-title" href="#4103">矩形編集</a>
    <span class="author">ぜっと</span>
    <time datetime="2005-11-11T13:58:28">2005年11月11日 13:58</time></h1>
    <div class="body">既出かもしれませんが、<br>2バイト文字の先頭の1バイトだけが選択範囲に含まれるような矩形選択をして、<br>スペースを入力するとおかしな感じになります。<br></div></section>
    <ul><li><section><h1 id=4106>
    <span class="no">[4106]</span>
    <a class="thread-title" href="#4106">Re:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-11T16:04:51">2005年11月11日 16:04</time></h1>
    <div class="body">▼ ぜっとさん<br>&gt; 既出かもしれませんが、<br>&gt; 2バイト文字の先頭の1バイトだけが選択範囲に含まれるような矩形選択をして、<br>&gt; スペースを入力するとおかしな感じになります。<br><br>範囲選択の途中に「2バイト文字の先頭の1バイトだけ」矩形選択されている場合は、<br>先頭の2バイト文字の後ろにそろった後、普通に動くみたいですが<br>範囲選択の開始行が「2バイト文字の先頭の1バイトだけ」矩形選択されていると、<br>なんかめちゃめちゃですね。<br><br>範囲選択の開始位置が２バイト文字で終了位置が１バイト文字とか、１バイトずれてる<br>とかだと普通にありそうですけど、緊急度は高くなさそうですね。<br></div></section>
    </li><li><section><h1 id=4107>
    <span class="no">[4107]</span>
    <a class="thread-title" href="#4107">Re:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-11T16:24:46">2005年11月11日 16:24</time></h1>
    <div class="body">▼ ぜっとさん<br>&gt; 既出かもしれませんが、<br>&gt; 2バイト文字の先頭の1バイトだけが選択範囲に含まれるような矩形選択をして、<br>&gt; スペースを入力するとおかしな感じになります。<br>スペースとTABでしか発生しないのでこの辺だというのはわかったけど、どこかな？<br><br>CEditView_Command.cpp<br>/* インデント ver1 */<br>void CEditView::Command_INDENT( char cChar )<br>{<br> if((cChar==SPACE || cChar==TAB) &amp;&amp; m_bBeginBoxSelect &amp;&amp; m_nSelectColmFrom==m_nSelectColmTo ){<br>  m_nSelectColmTo=m_pcEditDoc-&gt;m_cLayoutMgr.GetMaxLineSize();<br>  RedrawAll();<br>  return;<br> }<br></div></section>
    <ul><li><section><h1 id=4108>
    <span class="no">[4108]</span>
    <a class="thread-title" href="#4108">Re2:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-11T16:38:55">2005年11月11日 16:38</time></h1>
    <div class="body">すみません。早とちりしました。<br><br>&gt; ▼ ぜっとさん<br>&gt; &gt; 既出かもしれませんが、<br>&gt; &gt; 2バイト文字の先頭の1バイトだけが選択範囲に含まれるような矩形選択をして、<br>&gt; &gt; スペースを入力するとおかしな感じになります。<br>&gt; スペースとTABでしか発生しないのでこの辺だというのはわかったけど、どこかな？<br>&gt; <br>&gt; CEditView_Command.cpp<br>/* インデント ver1 */<br>void CEditView::Command_INDENT( char cChar )<br>ではないです。<br><br>/* インデント ver0 */<br>void CEditView::Command_INDENT( const char* pData, int nDataLen , BOOL bIndent )<br>のどこかかな？<br></div></section>
    <ul><li><section><h1 id=4114>
    <span class="no">[4114]</span>
    <a class="thread-title" href="#4114">Re3:矩形編集</a>
    <span class="author">すい</span>
    <time datetime="2005-11-12T02:11:41">2005年11月12日 02:11</time></h1>
    <div class="body">それ、タブなどのインデント揃えのための機能でしょう。<br>わざとそうしてある仕様だと思うし、下手な弄り方をされると非常に困るのですが。<br><br>例えば<br><br>-----<br>→　int param1,<br>a;→→　int param2;<br>→　→　→　int param3;<br>→　int param4;<br>-----<br>※「→　」が１バイトのタブ文字とします<br><br>というテキスト文がある時に、次のように矩形選択します。<br><br>-----<br>→　[in]t param1,<br>a;→[→]　int param2;<br>→　[→]　→　int param3;<br>→　[in]t param4;<br>-----<br><br>[　] が矩形選択された範囲。<br>ここで、矩形選択の範囲を 2,3行目のタブ文字列「→　」のタブ幅よりも短くしておく事が重要。<br>この矩形選択状態で [Tab] [Tab] と２回押すと、<br><br>-----<br>→　→　→　[in]t param1,<br>a;→→　→　[in]t param2;<br>→　→　→　[in]t param3;<br>→　→　→　[in]t param4;<br>-----<br><br>の様にインデント揃えが出来るわけですよね。<br><br>要するに文字には種類ごとに文字の幅があるわけで、<br>・半角文字（１バイト文字）<br>・全角文字（２バイト文字）<br>・タブ文字（タイプ別でのタブ幅の設定値）<br><br>で、矩形選択でのインデント入力時は、その文字幅全体にわたって選択された個所のみ<br>インデントされる、という仕様があって。<br># 正確には、文字幅範囲の末尾の位置が選択状態の個所のみ、ですが。<br><br>これを利用する事でインデント揃えが出来るようになっているわけですよね。<br><br>その機能の事では？<br></div></section>
    <ul><li><section><h1 id=4116>
    <span class="no">[4116]</span>
    <a class="thread-title" href="#4116">Re4:矩形編集</a>
    <span class="author">ぜっと</span>
    <time datetime="2005-11-12T02:54:52">2005年11月12日 02:54</time></h1>
    <div class="body">&gt; で、矩形選択でのインデント入力時は、その文字幅全体にわたって選択された個所のみ<br>&gt; インデントされる、という仕様があって。<br>&gt; # 正確には、文字幅範囲の末尾の位置が選択状態の個所のみ、ですが。<br>なるほどなるほど。<br>そう言う仕様なのですね。<br><br>それを知っていて、考慮しながら使うと便利そうですねー。</div></section>
    </li><li><section><h1 id=4117>
    <span class="no">[4117]</span>
    <a class="thread-title" href="#4117">Re4:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-12T02:55:08">2005年11月12日 02:55</time></h1>
    <div class="body">▼ すいさん<br>&gt; それ、タブなどのインデント揃えのための機能でしょう。<br>&gt; わざとそうしてある仕様だと思うし、下手な弄り方をされると非常に困るのですが。<br>&gt; <br>&gt; その機能の事では？<br>その仕様自体は理解したし特におかしいとは思わないのですが<br>範囲選択の開始行が２バイト文字の１バイト目で１バイト分の幅で複数行選択すると<br>スペースかTAB挿入のときだけ変な動作するのです。<br>２バイト分以上の幅で選択した場合問題ないのです。<br>多分２バイト文字なので矩形選択の開始位置と終了位置（横幅の方）が同じになってしまう<br>ような処理がどこかにあるんじゃないかと予測しているのですが。。。<br><br></div></section>
    <ul><li><section><h1 id=4124>
    <span class="no">[4124]</span>
    <a class="thread-title" href="#4124">Re5:矩形編集</a>
    <span class="author">すい</span>
    <time datetime="2005-11-12T21:43:46">2005年11月12日 21:43</time></h1>
    <div class="body">&gt;その仕様自体は理解したし特におかしいとは思わないのですが<br><br>理解出来ていないようですが。<br><br>&gt;範囲選択の開始行が２バイト文字の１バイト目で１バイト分の幅で複数行選択すると<br>&gt;スペースかTAB挿入のときだけ変な動作するのです。<br>&gt;２バイト分以上の幅で選択した場合問題ないのです。<br><br>ですから、そういう動作をするから上記のようなインデント揃えが出来るのですよ。<br><br>２バイト分以上の幅で選択すれば２バイト文字の文字幅の *終了側* が必ず<br>選択範囲に含まれますからね。<br>その場合には普通に選択行全体にインデント文字が入るでしょう。<br><br>あくまで文字幅の終了側が矩形選択範囲に含まれるかどうかだけで<br>インデント文字を入れるかどうかを判定しているだけでしょう。<br></div></section>
    <ul><li><section><h1 id=4126>
    <span class="no">[4126]</span>
    <a class="thread-title" href="#4126">Re6:矩形編集</a>
    <span class="author">げんた</span>
    <time datetime="2005-11-13T12:46:56">2005年11月13日 12:46</time></h1>
    <div class="body">インデントが入る位置はいいのですが，インデントを入れた後の選択位置が1行目を元に決定されているようで，1行目がTABだとインデント挿入後に選択範囲が飛び越えられてしまいます．<br><br>すいさんの例で言うと<br>→　[in]t param1,<br>a;→[→]　int param2;<br>→　[→]　→　int param3;<br>→　[in]t param4;<br><br>であればスペースでもタブでも位置が揃うのですが，1行目を除いて<br>→　int param1,<br>a;→[→]　int param2;<br>→　[→]　→　int param3;<br>→　[in]t param4;<br>としてTABではなくスペースを入れると最後の行にだけスペースが入る動作は納得ですが，その後の選択範囲が選択1行目の次の文字へ進んでしまって<br><br>→　int param1,<br>a;→→　[in]t param2;<br>→　→　[→]　int param3;<br>→　_int[ p]aram4;<br>と最終行の選択位置が当初と異なる位置になります．<br><br>たぶん最終行で元の位置を保とうとすると1行目の開始位置が文字の中間となって，そこにはキャレットを置けないのでこうなってしまうのかなと．<br><br>ソースコードでは CEditView_Command.cppの5463行目あたり．<br>if( 1 == nDataLen &amp;&amp; ( SPACE == pData[0] || TAB == pData[0] ) ){<br>　　bIndent=TRUE;<br>}<br>スペースとタブだけ特別扱いしています．<br><br>5475行目で<br>nIdxFrom = LineColmnToIndex( pcLayout, rcSel.left );<br>nIdxTo = LineColmnToIndex( pcLayout, rcSel.right );<br>とレイアウト位置から対応する文字のバイト位置を求め，<br>nDelLen = nIdxTo - nIdxFrom;<br>とnDelLenを計算します．<br><br>5492行目で<br>if( bIndent &amp;&amp; 0 == nDelLen ) continue;<br>と<br>文字幅が0，すなわち開始と終了が同一文字の中ならばインデントを行わないようになっています．<br><br>その後5530行目でキャレットを左上に持ってきて右に1文字動かしているので，1行目が1バイト文字でない場合にずれます．<br></div></section>
    <ul><li><section><h1 id=4127>
    <span class="no">[4127]</span>
    <a class="thread-title" href="#4127">Re7:矩形編集</a>
    <span class="author">げんた</span>
    <time datetime="2005-11-13T12:51:41">2005年11月13日 12:51</time></h1>
    <div class="body">試しに動作を変更したバイナリを作ってみました．<br><br>矩形挿入後の選択範囲を1行目ではなく実際に挿入が行われた行を使って計算するもの<br>http://members.at.infoseek.co.jp/sakura_editor/snapshot/sakura_2005-11-13_1.zip<br><br>これだけだと<br>---<br>あいう<br>abc<br>---<br>が<br><br>あ|いう<br> a|bc<br><br>と「あ」の後ろで揃ってしまうので<br><br>さらに，インデント時に挿入をスキップする対象をTAB文字に制限したもの<br>http://members.at.infoseek.co.jp/sakura_editor/snapshot/sakura_2005-11-13_2.zip<br><br>も作ってみました．<br><br>これでどうです？副作用あるかな？<br></div></section>
    <ul><li><section><h1 id=4138>
    <span class="no">[4138]</span>
    <a class="thread-title" href="#4138">Re8:矩形編集</a>
    <span class="author">すい</span>
    <time datetime="2005-11-15T02:04:49">2005年11月15日 02:04</time></h1>
    <div class="body">一部の挙動が変になりました。<br><br>-----<br>あいうえおかきくけこ<br>1あいうえおかきくけこ<br>-----<br><br>↑これで１行目の「い」から始まって矩形選択の範囲を２バイト幅以上、<br>例えば２行目の「う」の終わりまで矩形選択して、何か半角文字を入力すると、<br><br>従来<br>-----<br>あaaaaいうえおかきくけこ<br>1aaaaあいうえおかきくけこ<br>-----<br><br>sakura_2005-11-13_1.zip および sakura_2005-11-13_2.zip<br>-----<br>あaaaaいうえおかきくけこ<br>1aあaaaいうえおかきくけこ<br>-----<br><br>１文字目の半角文字入力時に、移動幅が２行目の「あ」の後ろまでと認識されてしまっている、とかでしょうか？<br>選択範囲が後ろに１バイト多く移動してしまっています。<br><br>ただ、逆に後ろから選択を開始した場合(あまり やらないと思いますけど)<br>例えば２行目の「い」から矩形選択を始めて１行目の「え」の終わりまでを選択範囲にした場合には<br><br>従来<br>-----<br>あaいaaaうえおかきくけこ<br>1あaaaaいうえおかきくけこ<br>-----<br><br>sakura_2005-11-13_1.zip および sakura_2005-11-13_2.zip<br>-----<br>あaaaaいうえおかきくけこ<br>1あaaaaいうえおかきくけこ<br>-----<br><br>のように立場が逆転するようで、、、何と評価したら良いのやら。。。 (;^^A<br># 総合すると、どっちの方が悪いとか言い難い。<br><br>&gt;矩形挿入後の選択範囲を1行目ではなく実際に挿入が行われた行を使って計算する<br>ここを「実際に入力された文字の文字幅で計算する」とか無理でしょうか．．．<br>ひょっとして TAB が入力された場合におかしくなったりしますかね？<br></div></section>
    </li></ul></li></ul></li><li><section><h1 id=4128>
    <span class="no">[4128]</span>
    <a class="thread-title" href="#4128">Re6:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-13T18:38:28">2005年11月13日 18:38</time></h1>
    <div class="body">▼ すいさん<br>&gt; &gt;範囲選択の開始行が２バイト文字の１バイト目で１バイト分の幅で複数行選択すると<br>&gt; &gt;スペースかTAB挿入のときだけ変な動作するのです。<br>&gt; &gt;２バイト分以上の幅で選択した場合問題ないのです。<br>&gt; <br>&gt; ですから、そういう動作をするから上記のようなインデント揃えが出来るのですよ。<br>げんたさんが下で書いていますが、私も書き忘れていたので、申し訳ないですが。<br><br>２回以上連続でスペースやTABを挿入してみてください。<br>１回目は良いけど２回目以降は文字が挿入されず選択位置がずれるだけだったりと<br>不思議な動きをします。<br></div></section>
    </li><li><section><h1 id=4129>
    <span class="no">[4129]</span>
    <a class="thread-title" href="#4129">Re6:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-13T19:25:11">2005年11月13日 19:25</time></h1>
    <div class="body">▼ すいさん<br>&gt; &gt;その仕様自体は理解したし特におかしいとは思わないのですが<br>&gt; <br>&gt; 理解出来ていないようですが。<br>冷静でない書き込みをしてしまった。<br>ちょっと反省。<br>えーっと<br><br>２回以上連続でスペースやTABを挿入した時で、<br>横２バイト分を選択した場合、と横１バイト分を選択した場合<br>動作が異なるのですが？<br><br>たとえば下の文字列で「い」部分で行うと１文字挿入自体は問題ないのですが２回目以降は範囲選択が移動するだけでスペース挿入されません。<br>＜－これが仕様ということでしょうか？<br><br>挿入前<br>------------<br>あいうえおかきくけこ<br>1あいうえおかきくけこ<br>あいうえおかきくけこ<br>1あいうえおかきくけこ<br><br>１文字挿入後（「う」の位置に選択位置がずれている）<br>＜－挿入動作だけは納得<br>------------<br>あいうえおかきくけこ<br>1 あいうえおかきくけこ<br>あいうえおかきくけこ<br>1 あいうえおかきくけこ<br><br>以降「こ」の位置になるまで文字は挿入されず選択位置がずれているだけ、<br>改行文字の位置でさらに続けて挿入すると<br>＜－挿入動作だけは納得<br>------------<br>あいうえおかきくけこ<br> 1 あいうえおかきくけこ<br>あいうえおかきくけこ<br> 1 あいうえおかきくけこ<br><br><br>これも仕様なんでしょうか？よくわからないです。</div></section>
    <ul><li><section><h1 id=4130>
    <span class="no">[4130]</span>
    <a class="thread-title" href="#4130">Re7:矩形編集</a>
    <span class="author">すい</span>
    <time datetime="2005-11-13T23:35:12">2005年11月13日 23:35</time></h1>
    <div class="body">すみません、何を悩まれているのか分かりません。<br>現在の仕様が単純に<br>&gt;&gt;&gt;で、矩形選択でのインデント入力時は、その文字幅全体にわたって選択された個所のみ<br>&gt;&gt;&gt;インデントされる、という仕様があって。<br>&gt;&gt;&gt;# 正確には、文字幅範囲の末尾の位置が選択状態の個所のみ、ですが。<br>と、なっているだけでしょう。<br>ですから、<br><br>&gt;たとえば下の文字列で「い」部分で行うと１文字挿入自体は問題ないのですが２回目以降は範囲選択が移動するだけでスペース挿入されません。<br>&gt;＜－これが仕様ということでしょうか？<br><br>どう見ても現在の仕様通りかと。<br><br>------------<br>&gt;あいうえおかきくけこ<br>&gt;1あいうえおかきくけこ<br>&gt;あいうえおかきくけこ<br>&gt;1あいうえおかきくけこ<br>------------<br>１行目の「い」の先頭１バイト(?)部分のみを矩形選択した状態だと、<br>２行目と４行目の 文字「あ」 の文字幅（２バイト文字幅）の終了側が選択範囲に含まれていますよね？<br>１行目と３行目は 文字「い」 の先頭側しか選択範囲に含まれていません。<br><br>その状態で（１回目）半角スペースを入れようとすると、文字の文字幅の終了側が<br>選択状態に含まれている２行目と４行目のみにインデントが入力されますよね。<br><br>その後、選択範囲が後ろにズレ、１行目と３行目の「う」と２行目と４行目の「い」の、<br>いずれも先頭側のみが選択範囲に含まれた状態になりますよね。<br>いずれの行にも選択範囲中に文字幅の終了側が含まれた文字がありません。<br>ですから２回目は半角スペースを入力しても、どの行にもインデントが入力されなくなるのですね。<br>選択範囲が後ろにズレるのみとなる、という事です。<br><br>文字幅の終了側が選択範囲に含まれている個所のみにインデントが入力されるという<br>仕様になっているわけですから、そうなるでしょうね。<br><br>動作仕様自体は極めて単純だと思うのですけど。<br><br><br># げんたさん のように仕様を知っている上で仕様改善されたりするのでしたら<br># 問題無いと思いますけど、仕様が理解できていないままに（仕様どおりの正常動作<br># なのに「バグだ」とでも思っているのでは？）弄られると、どこをどうされるか<br># 分かりませんから困りますわん、というお話です。<br></div></section>
    <ul><li><section><h1 id=4131>
    <span class="no">[4131]</span>
    <a class="thread-title" href="#4131">Re8:矩形編集</a>
    <span class="author">もか</span>
    <time datetime="2005-11-14T00:19:55">2005年11月14日 00:19</time></h1>
    <div class="body">ちょっと本題とずれますけど。<br>&gt;&gt;4051<br>も緊急度低ですが、ついでに考慮してくれるとありがたいです。<br>「SP1つ」→「スペース１つ」の意味です。<br>インデント機能と文字入力処理が一緒になっているから問題がややこしくなるんですよね。<br><br>#私も詳細な動作を知らないところがあるので報告だけして放置する事が多々あります。<br></div></section>
    <ul><li><section><h1 id=4133>
    <span class="no">[4133]</span>
    <a class="thread-title" href="#4133">Re9:矩形編集</a>
    <span class="author">げんた</span>
    <time datetime="2005-11-14T00:37:54">2005年11月14日 00:37</time></h1>
    <div class="body">&gt;&gt;&gt;4051<br>&gt;も緊急度低ですが、ついでに考慮してくれるとありがたいです。<br>これ，ソースを見るとわざとそう作ってあるんですけど...<br>やめるのは当該処理を削除するだけなんですが，わざわざそうしてあるところを見ると，何か考えがあったのではないかなと．<br>幅1つ選択すれば済むことなので，幅0の特殊処理を有用だと思っている人を悲しませてまで変える必要はないかと思います．<br><br># どう有用なのかは全くわかりませんが...<br></div></section>
    <ul><li><section><h1 id=4134>
    <span class="no">[4134]</span>
    <a class="thread-title" href="#4134">Re10:矩形編集</a>
    <span class="author">すい</span>
    <time datetime="2005-11-14T01:52:50">2005年11月14日 01:52</time></h1>
    <div class="body">&gt;&gt;dev:4051 の件。<br>私もコレはなぜこういう仕様になっているのか分かりません。<br><br>前の方は、ひょっとしたらキー操作で矩形入力モード状態に し易くするために<br>（少ないキー操作で広い範囲を選択状態に出来るように）後ろまで選択範囲を<br>広げるようにしたのかな？<br><br># インデント入力時は選択対象の文字の終端側が選択状態でなければ入力されない<br># 仕様ですから、矩形選択の選択幅が0ではどこにもインデント入力されませんから<br># インデント入力が絶対可能な範囲まで選択範囲を広げてくれるのかな？<br><br>とか推測できなくも無いですが。<br>（↑あくまで勝手な憶測です。本当の所はどうなんでしょう？）<br><br>後の方、理由（利点）が理解できないです。<br><br>&gt;もう一点、<br>&gt;&gt;abcd (ココから下に３行矩形選択)<br>&gt;&gt;ek<br>&gt;&gt;a<br>&gt;みたいになっている改行直前を矩形選択したときも、文字ならその桁位置に入力できるのですが、同様にスペースだと入力してくれずに、カーソルが同じ行の先頭に移動します。<br><br>これ。<br>矩形選択範囲が改行より後ろの位置にある状態でインデント入力すると<br>行頭へのインデント入力モードになってしまうのが、個人的には<br>とても不便なのですが、、、<br>よく複数行の行末にインデントを入力したい事があるのですけど<br>行末に対してインデントの矩形入力できなくて。<br><br>確か以前見たときは「この条件文を消せば良いんだろうな～」とは<br>思いましたが、そもそも何故、現状こういう動作にしてあるのか理由が分からず、、、<br>変えちゃったら困る人いるんでしょうかね？<br></div></section>
    </li></ul></li></ul></li><li><section><h1 id=4132>
    <span class="no">[4132]</span>
    <a class="thread-title" href="#4132">Re8:矩形編集</a>
    <span class="author">げんた</span>
    <time datetime="2005-11-14T00:33:06">2005年11月14日 00:33</time></h1>
    <div class="body">&gt;# げんたさん のように仕様を知っている上で仕様改善されたりするのでしたら<br>いや，初めて知りましたけどね(笑)<br><br>仕様通りかそうでないかという議論はどうでも良くて，むしろ使いやすいか使いにくいかが問題ではないかと．<br></div></section>
    </li><li><section><h1 id=4135>
    <span class="no">[4135]</span>
    <a class="thread-title" href="#4135">Re8:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-14T02:04:05">2005年11月14日 02:04</time></h1>
    <div class="body">▼ すいさん<br>&gt; # なのに「バグだ」とでも思っているのでは？）弄られると、どこをどうされるか<br>&gt; # 分かりませんから困りますわん、というお話です。<br>私は直すつもりはなかったですよ。<br>このへんをこういじったらどうかなって報告するつもりではいましたが。<br></div></section>
    </li><li><section><h1 id=4136>
    <span class="no">[4136]</span>
    <a class="thread-title" href="#4136">Re8:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-14T02:21:45">2005年11月14日 02:21</time></h1>
    <div class="body">▼ すいさん<br>&gt; 動作仕様自体は極めて単純だと思うのですけど。<br>それは動作しようでなくてプログラム解析結果では？<br>本来あるべき動作（私はこれを仕様といっていたつもりですが）<br>とプログラム解析結果（や実際の動作）が同じとは限らないと思うのですが。<br><br>------------<br>あいうえおかきくけこ<br>1あいうえおかきくけこ<br>あいうえおかきくけこ<br>1あいうえおかきくけこ<br>------------<br>ここで3つスペース挿入だったら「私は」こうなることを期待するのですが、違いますか？<br>範囲選択の開始が半角文字だとこうなるので。<br>------------<br>あ  いうえおかきくけこ<br>1   あいうえおかきくけこ<br>あ  いうえおかきくけこ<br>1   あいうえおかきくけこ<br>------------<br><br>#文字だけでやり取りするとなんかギスギスしていやだなぁ<br></div></section>
    <ul><li><section><h1 id=4137>
    <span class="no">[4137]</span>
    <a class="thread-title" href="#4137">Re9:矩形編集</a>
    <span class="author">すい</span>
    <time datetime="2005-11-15T01:45:16">2005年11月15日 01:45</time></h1>
    <div class="body">&gt;&gt; 動作仕様自体は極めて単純だと思うのですけど。<br>&gt;それは動作しようでなくてプログラム解析結果では？<br>&gt;本来あるべき動作（私はこれを仕様といっていたつもりですが）<br>&gt;とプログラム解析結果（や実際の動作）が同じとは限らないと思うのですが。<br><br>違います。仕様です。<br>つまりプログラマーから見ての意図どおりの動作、という意味です。<br>ユーザーから見ると素直じゃないと感じる動作でしょうけど。<br>で、私は その仕様を解説しているだけですよ。<br><br>&gt;ここで3つスペース挿入だったら「私は」こうなることを期待するのですが、違いますか？<br>&gt;範囲選択の開始が半角文字だとこうなるので。<br>&gt;------------<br>&gt;あ  いうえおかきくけこ<br>&gt;1   あいうえおかきくけこ<br>&gt;あ  いうえおかきくけこ<br>&gt;1   あいうえおかきくけこ<br>&gt;------------<br>↑こういう風に半角スペースを揃えるような動作を実現するプログラムも<br>現実に可能でしょう（当然ですが）。<br>しかしながら動作仕様（言い換えればプログラム）が現在の物よりも かなり<br>複雑化・大型化しますよね。<br># インデント入力時には、まず必ず矩形選択されている全ての選択対象行を<br># チェックしてまわり、行同士で全角文字がズレていないか調べ、その結果に応じて<br># 「ズレていた場合用のスペース挿入処理(ズレている行のみスペースを挿入する)」<br># 「ズレていない場合用のスペース挿入処理(全ての行にスペースを挿入する)」<br># をそれぞれ選択・実行するようにしないと駄目でしょうかね？<br># 今の簡単な仕様だと、↑このような類のことは全くやっていない、かなり<br># 簡単なプログラムで済んでいますけど。<br><br>現在の仕様は、極力簡単（単純）な動作仕様（簡単なプログラム）で<br>インデント揃えの機能が実現できるように考えられた、いわば<br>妙案(?)（というか姑息?とまで言うと言い過ぎ?）のような感じの物なのです。<br>そしてその妙案(?)ゆえに、ユーザーから見ると素直とは感じられない点が<br>色々出てくるわけですけど。<br><br>&gt;------------<br>&gt;あいうえおかきくけこ<br>&gt;1あいうえおかきくけこ<br>&gt;------------<br>こういった２バイト文字でがあったりする場合なんかは、矩形選択の選択幅を<br>２バイト分以上にしなければインデント挿入結果が変になったりしますしね。<br>でも逆に言えば２バイト分以上の幅を選択すればなんとかなる、つまり<br>使い方（運用面）の工夫で解決できちゃったりするわけで。<br>それで良いか～、という割り切り仕様。<br><br><br>そういう「プログラムが簡単になる代わりに運用面での工夫が要る」というのが<br>嫌（まぁ、ユーザーなら普通は嫌ですよね）で、その辺を<br>「プログラムが大幅に複雑化しようが何しようが構わないからオレが直してやろう」<br>とか おっしゃるのでしたら直して頂いて構わない、というより むしろ(当然ですが)<br>有難く思います。私も全く反対などする気はないですし。<br>ただ、仕様を理解しないままに弄られたりすると困る、というだけですので。<br><br># だいたい、今の「かなり簡単な(ハズの)仕様(プログラム)」でさえ、皆、プログラムを<br># 追うのに四苦八苦っぽいのに、これよりさらに複雑な処理にして大丈夫なのかな～、<br># という気持ちもあったりします。。。<br></div></section>
    <ul><li><section><h1 id=4139>
    <span class="no">[4139]</span>
    <a class="thread-title" href="#4139">Re10:矩形編集</a>
    <span class="author">すす</span>
    <time datetime="2005-11-15T13:44:37">2005年11月15日 13:44</time></h1>
    <div class="body">▼ すいさん<br>&gt; # だいたい、今の「かなり簡単な(ハズの)仕様(プログラム)」でさえ、皆、プログラムを<br>&gt; # 追うのに四苦八苦っぽいのに、これよりさらに複雑な処理にして大丈夫なのかな～、<br>&gt; # という気持ちもあったりします。。。<br>ソースを見始めたのは<br>以下の場合３つ目の1から選択した場合や２バイト分以上選択した場合<br>予想するとおりの動作になったので、１行直せばすぐ直るんじゃないかなぁ？<br>という軽い気持ちからです。<br><br>------------<br>1111111111111111111<br>あいうえおかきくけこ<br>1あいうえおかきくけこ<br>あいうえおかきくけこ<br>1あいうえおかきくけこ<br>------------<br><br>たしかにソース追うだけでも、困難だというのが実感できました。<br><br></div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li><li><section><h1 id=4122>
    <span class="no">[4122]</span>
    <a class="thread-title" href="#4122">Re4:矩形編集</a>
    <span class="author">ぜっと</span>
    <time datetime="2005-11-12T18:59:57">2005年11月12日 18:59</time></h1>
    <div class="body">---------<br>あいう<br>abc<br>---------<br>もともと、下記のようなテキストがあって、<br>「a」の部分(「あ」の前半部分)のみが選択範囲になるような矩形選択をして、<br>スペース入力をしたら、ヘンだなと思ったワケなんですが、<br><br>---------<br>abc<br>□あいう<br>def<br>---------<br># □は全角スペース<br>それは上記のようなテキストのインデント揃えのための<br>副作用なわけですよね？<br><br>と、思って試してみると、「a」だけが範囲にはいるような桁までの矩形選択をして<br>半角や全角のスペースを入力してみるとうまくいきませんね。</div></section>
    <ul><li><section><h1 id=4125>
    <span class="no">[4125]</span>
    <a class="thread-title" href="#4125">Re5:矩形編集</a>
    <span class="author">すい</span>
    <time datetime="2005-11-12T21:56:56">2005年11月12日 21:56</time></h1>
    <div class="body">&gt;---------<br>&gt;abc<br>&gt;□あいう<br>&gt;def<br>&gt;---------<br>&gt;# □は全角スペース<br>&gt;それは上記のようなテキストのインデント揃えのための<br>&gt;副作用なわけですよね？<br><br>インデントを揃えるための物ですよ。<br>インデントとは半角スペースと TAB です。<br>全角スペースはインデントじゃありません。分類上は漢字(と同じ)です。<br>少なくとも、このエディタではそういう扱いです。<br># 一部の機能は便宜上、全角スペースもインデント扱いになったりしていますが。<br><br>実際に この機能の対象となるのは Tabインデントくらいでしょう。<br></div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></body></html>